//axiosInstance.js
//导入axios
import { h } from 'vue'
import { ElNotification } from 'element-plus'
import axios from 'axios'
import {useCounterStore} from "../pina/index";
import {removeToken,getToken} from '../utils/auth'
import { useRouter, useRoute } from 'vue-router'

const router = useRouter();
//使用axios下面的create([config])方法创建axios实例，其中config参数为axios最基本的配置信息。
const request = axios.create({
	baseURL:'/ryl', //请求后端数据的基本地址，自定义
	timeout: 200000                  //请求超时设置，单位ms
})
request.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'


// 添加请求拦截器
request.interceptors.request.use(function (config) {
    

// 机票
if(config.url.includes('/meng')){
  config.baseURL='/meng'

  
  config.url = config.url.replace('/meng', "");


 
 }
 // 是否需要设置 token
 const isToken = (config.headers || {}).isToken === false
 // 是否需要防止数据重复提交
//  const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
 if (getToken() && !isToken) {
   config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
 }
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

// 添加响应拦截器
request.interceptors.response.use(function (response) {


  if(response.data.code===401){
    ElNotification({
      title: '提示1',
      message: h('i', { style: 'color: red' }, response.data.msg),
    })
    const store = useCounterStore();
    // 移除token
    removeToken()
    store.incrementUser("");
    router.push({
      name: 'login',
 
    })
    
  }else if(response.data.code&&response.data.code!==200
  ){
    ElNotification({
        title: '提示',
        message: h('i', { style: 'color: red' }, response.data.msg),
      })
  }else if(response.data.code==200){

  }
    // 对响应数据做点什么
    return response.data;


    
  }, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  });


//导出我们建立的axios实例模块，ES6 export用法
export default request
